This invention generally-relates to distributed data base systems, and more specifically, to maintaining copies of a database at a plurality of locations.
The purpose of a data base system is to store data reliably and to process valid, authorized read and write requests on that data. A database system provides a uniform interface for accessing data by-executing transactions. The purpose of a distributed database system is to provide global database service to users at a collection of sites. A distributed data base system is a coalition of sites that share access to a set of data. Each site maintains directory information about the data so that each site has knowledge of all data stored by the database system.
A distributed database must, under normal operating conditions, maintain internal and mutual consistency of the data stored by the system. Internal consistency is maintained if all database updates performed by committed transactions are reflected in the database, none of the updates performed by uncommitted transactions are reflected in the database, and no transaction is allowed to read a data value written by another transaction that is not yet committed.
Maintaining consistency among a large number of distributed database can be difficult, however. In particular, in an environment where the same maintenance procedures need to be applied to many copies of the same database, it can be very time consuming to perform the maintenance, one copy at a time. For example, in the past, if a piece of maintenance needed to be performed, an agent was developed and pasted into each copy of the database and then executed. If maintenance needed to be performed on each of two databases at 40 locations, for example, then the agent needed to be pasted into 80 databases.
Also, in the past, commonly, when migrating to the next release, an agent was developed as part of the new database design and deployed with the new version. To perform the migration, an administrator needed to open each database and execute the migration agent. In addition, in the past, with many systems, when lookup documents needed to be updated, the administrator selected and copied the new lookup document to a clipboard and then manually opened each of the databases, deleted the old lookup documents and pasted the new document. With a system having scores, or even hundreds, of distributed databases, this is very time-consuming.
An object of this invention is to improve methods and systems for maintaining distributed databases.
Another object of this invention is to reduce the time required to maintain distributed databases.
A further object of the present invention is to log all maintenance activity performed on a distributed database, in a consistent manner in one database.
Still another object of the present invention is to provide a support tool that can be used for various types of support activities when supporting large numbers of databases. These support activities include, for example, updating lookup documents, migrating from one release of an application to the next release, and fixing production problems.
These and other objectives are attained with a method and system for maintaining copies of a database at a plurality of locations. The method comprises the steps of providing a codeset list having codes and corresponding text, receiving a new codeset list, and comparing the new codeset list to the codeset list to determine differences and creating a log of the differences.
A second codeset list is formed comprising the codeset list and the new codeset list, the new codeset list is sent to the plurality of locations, and one of the copies at the plurality of locations is selected for migration. The method further comprises the steps of finding documents at the one of the plurality of locations that contains at least one of the differences in the log, resolving codes for the differences from the second codeset list, and modifying the documents using the second codeset list.
The support tool of this invention reduces maintenance support time in the environment where many copies of the same database are being supported. The support tool is a separate database that contains one document for each copy of the database being supported. Each partition document contains the basic information, such as server, path and filename, needed to locate the referenced database.
When a new piece of maintenance needs to be applied, the maintenance can be written as an action, and the action can be performed against each partition by selecting the partition document. General routines may be used by each piece of maintenance for activities such as logging and accessing the partition, so that each action works in the same general manner even though the maintenance itself may be different.
Further benefits and advantages of the invention will become apparent from a consideration of the following detailed description, given with reference to the accompanying drawings, which specify and show preferred embodiments of the invention.